package question12;

/**
 * 设计一个名为 MyPoint 的类，包含以x坐标和y坐标表示的点。设计该类的具体需求包括：
 * 1. 数据属性x和y,用于表示坐标，
 * 2. setX setY 及 getX getY 方法，分别用于设置及获取数据属性x和y；
 * 3. 创建点(0,0)的无参构造方法；
 * 4. 创建特定坐标点的构造方法；
 * 5. distance 方法，返回从该点到 MyPoint 类型的指定点之间的距离；
 * 6. distance 方法，返回从该点到由x和y确定的点之间的距离，体会方法重载；
 * 7. 编写一个测试程序，创建两个点的对象，并显示他们之间的距离。
 *
 * @FileName MyPoint
 * @Description
 * @Author Sword
 * @date 2024-10-23
 **/
public class MyPoint {
    private double x;
    private double y;


    public MyPoint() {
        this.x = 0;
        this.y = 0;
    }

    public MyPoint(int x, int y) {
        this.x = x;
        this.y = y;
    }

    /**
     * 获取
     *
     * @return x
     */
    public double getX() {
        return x;
    }

    /**
     * 设置
     *
     * @param x
     */
    public void setX(int x) {
        this.x = x;
    }

    /**
     * 获取
     *
     * @return y
     */
    public double getY() {
        return y;
    }

    /**
     * 设置
     *
     * @param y
     */
    public void setY(int y) {
        this.y = y;
    }

    //distance 方法，返回从该点到 MyPoint 类型的指定点之间的距离
    public double distance(MyPoint other) {

        return Math.sqrt(Math.pow(this.x - other.x, 2) + Math.pow(this.y - other.y, 2));
    }

    //distance 方法，返回从该点到由x和y确定的点之间的距离，体会方法重载
    public double distance(double x, double y){
        return Math.sqrt(Math.pow(this.x - x, 2) + Math.pow(this.y - y, 2));
    }

}
